package com.fmboy.MXH.nav.domain.entities;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.time.LocalDateTime;


/**
 * 表名：mxh_nav_user
 * 表注释：喵星汇-导航-用户表
 */

@Table(name = "mxh_nav_user")
@Data
public class User implements Serializable {
    /**
     * 主键ID
     * -- GETTER --
     * 获取主键ID
     * <p>
     * <p>
     * -- SETTER --
     * 设置主键ID
     *
     * @return id - 主键ID
     * @param id 主键ID
     */
    @Id
    @GeneratedValue(generator = "JDBC")
    private Integer id;

    /**
     * 用户名
     * -- GETTER --
     * 获取用户名
     * <p>
     * <p>
     * -- SETTER --
     * 设置用户名
     *
     * @return username - 用户名
     * @param username 用户名
     */
    private String username;

    /**
     * 密码
     * -- GETTER --
     * 获取密码
     * <p>
     * <p>
     * -- SETTER --
     * 设置密码
     *
     * @return password - 密码
     * @param password 密码
     */
    private String password;

    /**
     * 邮箱
     * -- GETTER --
     * 获取邮箱
     * <p>
     * <p>
     * -- SETTER --
     * 设置邮箱
     *
     * @return email - 邮箱
     * @param email 邮箱
     */
    private String email;

    /**
     * 昵称
     * -- GETTER --
     * 获取昵称
     * <p>
     * <p>
     * -- SETTER --
     * 设置昵称
     *
     * @return nickname - 昵称
     * @param nickname 昵称
     */
    private String nickname;

    /**
     * 头像
     * -- GETTER --
     * 获取头像
     * <p>
     * <p>
     * -- SETTER --
     * 设置头像
     *
     * @return avatar - 头像
     * @param avatar 头像
     */
    private String avatar;

    /**
     * 用户角色
     * -- GETTER --
     * 获取用户角色
     * <p>
     * <p>
     * -- SETTER --
     * 设置用户角色
     *
     * @return role - 用户角色
     * @param role 用户角色
     */
    private String role;

    /**
     * 创建时间
     * -- GETTER --
     * 获取创建时间
     * <p>
     * <p>
     * -- SETTER --
     * 设置创建时间
     *
     * @return createTime - 创建时间
     * @param createTime 创建时间
     */
    @Column(name = "create_time")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd' 'HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 修改时间
     * -- GETTER --
     * 获取修改时间
     * <p>
     * <p>
     * -- SETTER --
     * 设置修改时间
     *
     * @return updateTime - 修改时间
     * @param updateTime 修改时间
     */
    @Column(name = "update_time")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd' 'HH:mm:ss")
    private LocalDateTime updateTime;

    /**
     * 自我介绍
     * -- GETTER --
     * 获取自我介绍
     * <p>
     * <p>
     * -- SETTER --
     * 设置自我介绍
     *
     * @return bio - 自我介绍
     * @param bio 自我介绍
     */
    private String bio;

}